CodeIgniter-এ অ্যাপ্লিকেশনটি প্রোডাকশন এনভায়রনমেন্টে হোস্ট করার আগে কিছু প্রস্তুতি নেওয়া জরুরি। এই প্রস্তুতির মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটি নিরাপদ, দ্রুত, এবং কার্যকরীভাবে চালাতে পারবেন। এখানে আমরা বিভিন্ন গুরুত্বপূর্ণ প্রস্তুতির ধাপ আলোচনা করবো যা আপনাকে CodeIgniter অ্যাপ্লিকেশন প্রোডাকশন পরিবেশে সফলভাবে চলতে সাহায্য করবে।
CodeIgniter অ্যাপ্লিকেশনটি ডেভেলপমেন্ট, স্টেজিং এবং প্রোডাকশন তিনটি পরিবেশের জন্য কনফিগার করা যেতে পারে। প্রতিটি পরিবেশের জন্য আলাদা কনফিগারেশন সেট করা গুরুত্বপূর্ণ।
.env
ফাইল ব্যবহার করাapp/Config/
ডিরেক্টরিতে .env
ফাইলটি রিনেম করুন (যদি না থাকে)।.env
ফাইলটি ওপেন করুন এবং CI_ENVIRONMENT
পরিবর্তন করুন:
CI_ENVIRONMENT = production
এই পরিবর্তনটি অ্যাপ্লিকেশনকে প্রোডাকশন পরিবেশে চালু করবে এবং প্রোডাকশন সংক্রান্ত সমস্ত কনফিগারেশন প্রয়োগ হবে।
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনটি নিরাপদ এবং দক্ষভাবে চলতে হলে ডিবাগ মোড বন্ধ করা উচিত এবং এরর রিপোর্টিং সীমিত করা উচিত।
app/Config/Boot/development.php
ফাইলে Debugging বন্ধ করুনপ্রোডাকশন পরিবেশে debugging বন্ধ করতে, app/Config/Boot/development.php
ফাইলটি ওপেন করুন এবং নিম্নলিখিত কোডটি সেট করুন:
error_reporting(0); // সব ধরনের ত্রুটি বন্ধ
ini_set('display_errors', '0'); // ত্রুটি স্ক্রীনে না দেখানো
app/Config/App.php
ফাইলের debug কনফিগারেশন সেট করুনpublic $debug = false; // প্রোডাকশন পরিবেশে ডিবাগ বন্ধ করুন
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনটির সিকিউরিটি বাড়ানো অত্যন্ত গুরুত্বপূর্ণ। নিচে কিছু সাধারণ সিকিউরিটি কনফিগারেশন দেওয়া হলো।
প্রোডাকশন পরিবেশে CSRF Protection নিশ্চিত করা জরুরি। CodeIgniter-এ CSRF protection সরবরাহ করা হয়।
app/Config/Security.php
ফাইল ওপেন করুন এবং CSRF সক্রিয় করুন:
public $csrfProtection = true;
অ্যাপ্লিকেশনটি HTTPS-এ চলমান রাখতে নিশ্চিত করুন যে সমস্ত রিকোয়েস্ট HTTPS প্রোটোকল ব্যবহার করছে। app/Config/App.php
ফাইলে বেস URL সেট করতে পারেন:
public $baseURL = 'https://yourdomain.com/';
XSS (Cross-Site Scripting) আক্রমণ থেকে সুরক্ষা পেতে, HTTP হেডারে সিকিউরিটি ফিচার যোগ করা উচিত:
$response = \Config\Services::response();
$response->setHeader('X-XSS-Protection', '1; mode=block');
$response->setHeader('X-Content-Type-Options', 'nosniff');
$response->setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
$response->setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self'");
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে ক্যাশিং ব্যবহার করা উচিত।
CodeIgniter ডাটাবেস ক্যাশিং সমর্থন করে। যদি আপনার অ্যাপ্লিকেশনটি অনেক ডাটাবেস রিকোয়েস্ট করে, তবে ক্যাশিং সক্রিয় করা উচিত।
Example:
$db = \Config\Database::connect();
$query = $db->table('products')->cache(300)->get(); // ক্যাশে ৫ মিনিট
CodeIgniter ভিউ ক্যাশিংও সমর্থন করে। যদি ভিউটি পরিবর্তন না হয়, তবে সেটি ক্যাশে রাখতে পারেন:
echo view('home', [], true); // ভিউ ক্যাশে রাখবে
Error logs এবং activity logs মনিটরিং প্রোডাকশন পরিবেশে খুবই গুরুত্বপূর্ণ।
app/Config/Logger.php
ফাইলে লগের স্তর সেট করুন:
public $logThreshold = 4; // শুধুমাত্র Error, Warning, Info, and Debug log হবে।
লগ ফাইলগুলি writable/logs
ফোল্ডারে সংরক্ষিত হয়। এটি রাইটেবল থাকতে হবে:
chmod -R 0777 writable/logs
প্রোডাকশন পরিবেশে ডাটাবেস সংযোগ নিশ্চিত করুন এবং ডাটাবেসের নিরাপত্তা কনফিগারেশন চেক করুন।
app/Config/Database.php
ফাইলে প্রোডাকশন ডাটাবেস কনফিগারেশনpublic $default = [
'DSN' => '',
'hostname' => 'your_production_host',
'username' => 'your_production_db_user',
'password' => 'your_production_db_password',
'database' => 'your_production_db_name',
'DBDriver' => 'MySQLi', // আপনার ডাটাবেস ড্রাইভার
'DBPrefix' => '',
'pConnect' => false,
'cacheOn' => false,
'charset' => 'utf8',
'DBDebug' => false, // প্রোডাকশন পরিবেশে ডিবাগ বন্ধ
];
CodeIgniter অ্যাপ্লিকেশনটির জন্য কিছু ফোল্ডার যেমন writable/
এবং cache/
ফোল্ডার রাইটেবল হতে হবে।
Linux / MacOS এ:
chmod -R 0777 writable/
chmod -R 0777 writable/cache/
প্রোডাকশন পরিবেশে কোডটি স্থির রাখতে, আপনার cache এবং debug logs পরিষ্কার রাখা উচিত। CodeIgniter-এর ক্যাশ পরিষ্কার করতে:
php spark cache:clear
CodeIgniter অ্যাপ্লিকেশনটি প্রোডাকশন পরিবেশে চলানোর জন্য উপরের ধাপগুলো অনুসরণ করলে তা নিরাপদ, দ্রুত, এবং কার্যকরী হবে। এই প্রস্তুতিগুলি আপনার অ্যাপ্লিকেশনকে নিরাপদ ও স্কেলেবল করতে সাহায্য করবে এবং প্রোডাকশন সার্ভারে ভালো পারফরম্যান্স নিশ্চিত করবে।